/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tk.eigh.ksvg.component.filter;

import ksvg.core.SVGFilter;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;

/**
 * <p>This filter primitive composites input image layers on top of each other
 * using the <em>over</em> operator with <em>Input1</em> (corresponding to the
 * first <a
 * href="http://www.w3.org/TR/SVG/filters.html#feMergeNodeElement">‘feMergeNode’</span></a>
 * child element) on the bottom and the last specified input, <em>InputN</em>
 * (corresponding to the last <a
 * href="http://www.w3.org/TR/SVG/filters.html#feMergeNodeElement">‘feMergeNode’</a>
 * child element), on top.</p> <p>Many effects produce a number of intermediate
 * layers in order to create the final output image. This filter allows us to
 * collapse those into a single image. Although this could be done by using n-1
 * Composite-filters, it is more convenient to have this common operation
 * available in this form, and offers the implementation some additional
 * flexibility.</p> <p>Each <a
 * href="http://www.w3.org/TR/SVG/filters.html#feMergeElement">‘feMerge’</a>
 * element can have any number of <a
 * href="http://www.w3.org/TR/SVG/filters.html#feMergeNodeElement">‘feMergeNode’</a>
 * subelements, each of which has an <a
 * href="http://www.w3.org/TR/SVG/filters.html#FilterPrimitiveInAttribute">‘in’</a>
 * attribute.</p> <p>The canonical implementation of feMerge is to render the
 * entire effect into one RGBA layer, and then render the resulting layer on the
 * output device. In certain cases (in particular if the output device itself is
 * a continuous tone device), and since merging is associative, it might be a
 * sufficient approximation to evaluate the effect one layer at a time and
 * render each layer individually onto the output device bottom to top.</p>
 * <p>If the topmost image input is <a
 * href="http://www.w3.org/TR/SVG/filters.html#SourceGraphic">SourceGraphic</a>
 * and this <a
 * href="http://www.w3.org/TR/SVG/filters.html#feMergeElement">‘feMerge’</a> is
 * the last filter primitive in the filter, the implementation is encouraged to
 * render the layers up to that point, and then render the <a
 * href="http://www.w3.org/TR/SVG/filters.html#SourceGraphic">SourceGraphic</a>
 * directly from its vector description on top.</p>
 */
@JSFComponent(name = "svg:Merge",
type = "tk.eigh.svg.Merge",
family = "filter.Merge",
clazz = "ksvg.filter.Merge",
tagClass = "ksvg.tags.filter.MergeTag",
defaultRendererType = "filter.SVGMergeRenderer")
public abstract class AbstractMerge extends SVGFilter {
}